<?php
/**
 * Repraesentiert ein Request
 *
 */
class Kanedo_Router_Request
{
	/**
	 * Get Parameter
	 *
	 * @var array
	 */
	protected $_get = array();
	/**
	 * Post Parameter
	 *
	 * @var array
	 */
	protected $_post = array();
	/**
	 * Aufgerufene Gruppe
	 *
	 * @var string
	 */
	protected $_group = "index";
	/**
	 * Aufgerufener Controller
	 *
	 * @var string
	 */
	protected $_controller = "index";
	/**
	 * Aufgerufene Action
	 *
	 * @var string
	 */
	protected $_action	= "index";
	
	/**
	 * BaseUrl
	 * @var string
	 */
	protected $_baseUrl = null;
	
	/**
	 * Header die übergeben werden sollen
	 * @var array
	 */
	protected $_header = array();
	
	/**
	 * requestedUri
	 * @var string
	 */
	protected $_requestedUri ="";
	/**
	 * Konstruktor
	 *
	 */
	public function __construct()
	{
		
	}
	
	/**
	 * Speichert ein GET Parameter in der $_get;
	 *
	 * @param string $key
	 * @param string $value
	 */
	public function setGetParam ($key, $value)
	{
		$this->_get[$key] = $value;
	}
	
	/**
	 * Speichert ein POST Parameter in der $_post;
	 *
	 * @param string $key
	 * @param string $value
	 */
	public function setPostParam ($key, $value)
	{
		$this->_post[$key] = $value;
	}
	
	/**
	 * Speichert den geparsten Request!
	 *
	 * @param string $group
	 */
	public function setGroup($group)
	{
		$this->_group = $group;
	}
	
	/**
	 * Speichert den Controller in $this->_controller
	 *
	 * @param string $controller
	 */
	public function setController ($controller)
	{
		$this->_controller = $controller;
	}
	
	/**
	 * Speichert die Action in $this->_action
	 *
	 * @param string $action
	 */
	public function setAction ($action)
	{
		$this->_action = $action;
	}
	
	/**
	 * Speichert die BaseUrl in $this->_baseUrl
	 *
	 * @param string $base
	 */
	public function setBaseUrl($base)
	{
		$this->_baseUrl = $base;
	}
	
	/**
	 * Speichert einen weiteren HTTP Header im Array
	 *
	 * @param string $header
	 */
	public function setHeader ($header)
	{
		$this->_header[] = $header;
	}
	
	/**
	 * Liefert einen GET Parameter!
	 *
	 * @param string $key
	 * @return string | null
	 */
	public function getGetParam($key)
	{
		if (key_exists($key, $this->_get)) 
			return $this->_get[$key];
		else
			return null;
	}
	
	/**
	 * Liefert einen POST Parameter
	 *
	 * @param string $key
	 * @return string | null
	 */
	public function getPostParam($key)
	{
		if (key_exists($key, $this->_post)) 
			return $this->_post[$key];
		else
			return null;
	}
	
	/**
	 * Gibt die aktuell aufgerufene Gruppe zurück
	 *
	 * @return string
	 */
	public function getGroup()
	{
		return $this->_group;
	}
	
	/**
	 * Gibt den aktuell aufgerufenen Controller zurück
	 *
	 * @return string
	 */
	public function getController()
	{
		return $this->_controller;
	}
	
	/**
	 * gibt die Aktuelle Action zurück
	 *
	 * @return string
	 */
	public function getAction()
	{
		return $this->_action;
	}
	
	/**
	 * Liefert die zuvir gespeicherte BaseUrl zurück
	 *
	 * @return string
	 */
	public function getBaseUrl()
	{
		return $this->_baseUrl;
	}
	
	/**
	 * Liefert alle Header zurückdie vorher gesetzt worden sind
	 *
	 * @return array
	 */
	public function getHeader()
	{
		return $this->_header;
	}
	
	public function getViewFile()
	{
		return "../application/".$this->getGroup()."/View/".$this->getController()."/".$this->getAction().".phtml";	
	}
	
	public function getRequestedUri()
	{
		return $this->_requestedUri;
	}
	
	public function setRequestedUri($uri)
	{
		$this->_requestedUri = $uri;
	}
	

}
?>